#ifndef TOKENTYPE_H
#define TOKENTYPE_H
#include <string>
#include <map>
using namespace std;
class TokenType
{
public:
    multimap<string,int> reservadas;
    multimap<string,int>::iterator it;

    multimap<int,string> lexemas;
    multimap<int,string>::iterator it2;
    TokenType();
    multimap<string,int>::iterator find(string lexema);
    string returntokenstring(int token);
    enum {
        oprSuma,
        oprResta,
        oprLogicoO,
        oprLogicoY,
        oprExpo,
        oprMult,
        oprDiv,
        oprMenor,
        oprMayor,
        oprIgual,
        oprMenorIgual,
        oprMayorIgual,
        oprAsig,
        oprDist,
        pntcorIzq,
        pntcorDer,
        pntComa,
        pntDosPuntos,
        pntPunto,
        pntparDer,
        pntparIzq,
        revFuncion,
        revEntero,
        revReal,
        revCaracter,
        revBooleano,
        revCadena,
        revInicio,
        revFin,
        revSi,
        revNo,
        revEntonces,
        revSino,
        revCaso,
        revPara,
        revHasta,
        revHaga,
        revMientras,
        revRepita,
        revAbrir,
        revCerrar,
        revComo,
        revVar,
        revLeer,
        revEscribir,
        revTipo,
        revArchivo,
        revSecuencial,
        revRegistro,
        revArreglo,
        revDe,
        revProcedimiento,
        revLlamar,
        revEscriba,
        revLea,
        revVerdadero,
        revFalso,
        revDiv,
        revMod,
        revEs,
        revLectura,
        revEscritura,
        revRetorne,
        litNumeroEntero,
        litNumeroReal,
        litIdentificador,
        litCadena,
        litCaracter,
        enter,
        fin_archivo,
        rev_entrada,
        rev_salida,
        rev_alto,
        rev_bajo,
        rev_modo,
        rev_pin,
        pntkeyIzq,
        pntkeyDer
    };
};

#endif // TOKENTYPE_H
